/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import org.apache.log4j.*;
import org.apache.log4j.xml.DOMConfigurator;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import model.Usuario;
import java.util.List;
import service.UsuarioService;

/**
 * @author Fátima Pestana
 * @author Geral Zerpa
 */
public class DesactivarCuenta extends AbstractCommandController {

    private UsuarioService usuarioService;
    private static Logger loggers = null;

    public void setUsuarioService(UsuarioService usuarioService) {
        this.usuarioService = usuarioService;
    }

    public DesactivarCuenta() {
        this.setCommandClass(Usuario.class);
    }

    @Override
    protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object form, BindException errors) throws Exception {
        Map model = new HashMap();

        Usuario usuario = (Usuario) form;
        Usuario user2;
        String clave1;
        String clave3;
        clave1 = request.getParameter("clave2");
        List user;
        user = usuarioService.getUsuarioLogin(request.getParameter("correo"));


        if (user.isEmpty()) {
            request.getSession().setAttribute("usuarioList", null);
            model.put("cuenta", "Verifique la Cuenta e-mail. La que ingreso no se encuentra Registrada");
            return new ModelAndView("modificarCuenta", model);
        } else {
            user2 = (Usuario) user.get(0);

            clave3 = user2.getClave();

            if (clave1.equals(clave3)) {
                logger.info("user " + user2.getApellido());
                Usuario nuevo = new Usuario(user2.getIdUsuario(), user2.getNombre(), user2.getApellido(), user2.getSexo(), user2.getCorreo(), user2.getUsername(), user2.getClave(), "DESACTIVADA");
                usuarioService.saveUsuario(nuevo);
                request.getSession().setAttribute("usuarioList", null);
                model.put("cuenta", "La Cuenta a sido Desactivada");
                return new ModelAndView("home", model);
            } else {
                request.getSession().setAttribute("usuarioList", null);
                model.put("cuenta", "La Clave Ingresada en Invalida");
                model.put("usuario", usuario);
                return new ModelAndView("modificarCuenta", model);
            }

        }
    }
}
